import axios, {AxiosRequestConfig} from 'axios';

const request = (config: AxiosRequestConfig) => {
    const instance = axios.create({
        baseURL: '/api',
        timeout: 5000
    })

    instance.interceptors.request.use(config => {
        // 在发送请求之前携带token
        let token = window.localStorage.getItem('token') || window.sessionStorage.getItem('token')
        if (token) {
            config.headers['Authorization'] = 'Bearer ' + token;
        }
        return config;
    }, error => {
        return Promise.reject(error);
    })

    instance.interceptors.response.use(res => {
        // 2xx 范围内的状态码都会触发该函数。
        return res.data;
    }, error => {
        // 超出 2xx 范围的状态码都会触发该函数。
        return Promise.reject(error);
    })

    return instance(config);
}


export default request;

